Compactando / descompactando arquivos simultaneamente [Melhorado]
Publicado por Sandro Marcell 18/07/2007
[ Hits: 6.483 ]
Homepage: http://sanmarcell.wordpress.com
Este script compacta/descompacta arquivos simultaneamente, sem necessidade de parâmetros extras.
Ex.: nome_script arq.txt arq.pdf arq.gz arq.tar.gz
Os arquivos arq.txt e arq.pdf serão compactados; já os arquivs arq.gz e arq.tar.gz serão descompactados.
Está é a versão Shell Bash de um script Tcl que postei aqui no VOL.
Falou!!!
#!/bin/bash # # Compacte/descompacte arquivos simultaneamente. # (Versão Shell Bash) # # Autor: Sandro Marcell (sandro_marcell@yahoo.com.br) # # Uso: nome_script arquivo1 [arquivoN] # # Obs.: # É possível o uso do metacaractere (*) # São necessários os programas: tar, gzip e bzip2 # Realçando saída do comando 'echo': Echo () { echo -e "\e[1m$*\e[m" ; } # Checando parâmetros: [ -z $BASH_ARGC ] && Echo "Uso: $(basename $0) arquivo1 [arquivoN]" && exit # Simples avisos: Aguarde () { Echo "Descompactando..." ; sleep 1 ; } Aguarde2 () { Echo "Compactando..." ; sleep 1 ; } # Arquivo de log: LOG=/tmp/$(basename $0)-$USER.log # Função que testa código de retorno: Testando () { [ $? == 0 ] && Echo "Arquivo descompactado!" \ || Echo "-> Erro! Mais detalhes em $LOG" } # Início do loop: for A ; do # Testes condicionais: [ ! -e $A ] && Echo "-> Arquivo não encontrado." && continue [ ! -O $A ] && Echo "-> Acesso negado." && continue # Compactar ou descompactar? case $A in # Descompactando... *.tar.gz | *.tgz) Aguarde tar -zxf $A 2>> $LOG Testando $? ;; *.gz) Aguarde gunzip $A 2>> $LOG Testando $? ;; *.tar.bz2 | *.tbz) Aguarde tar -jxf $A 2>> $LOG Testando $? ;; *.bz2) Aguarde bunzip2 $A 2>> $LOG Testando $? ;; *) # Compactando... [ -d $A ] && { Aguarde2 tar -czf $A.tar.gz $A 2>> $LOG [ $? == 0 ] && Echo "Diretório compactado!" \ || Echo "-> Erro! Mais detalhes em $LOG" } || { Aguarde2 gzip -f9 $A 2>> $LOG [ $? == 0 ] && Echo "Arquivo compactado!" \ || Echo "-> Erro! Mais detalhes em $LOG" } ;; esac done #Fim
Squid: configure com opções avançadas
Tempo Debian - buscar condições de pacotes Debian
Twitter via https pelo terminal
Script para administração de usuários de fácil compreensão.
Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar o VIM 9.1 no Debian 12
Como saber o range de um IP público?
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
instalar o Linux em computadores Acer novos (1)